package com.jason.bookworm.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jason.bookworm.dao.pojo.Book;
import com.jason.bookworm.dao.pojo.BookClassify;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.Set;

@Transactional
public interface BookWareService extends IService<Book> {
    /*
    * 查询相关接口(忽略status=0的值)
    * */
    //获取所有书籍
    List<Book> getAllBooks();

    //按分类获取所有书籍
    List<Book> getAllBooks(BookClassify bookClassify);

    //按分页获取书籍(12本为一页)
    List<Book> getBooksByPages(int num,int pages);
    List<Book> getBooksByPages(int num,int pages,BookClassify bookClassify);

    //获取书籍本数
    Integer getNumOfBooks();
    Integer getNumOfBooks(BookClassify bookClassify);

    //获取书库的页数
    Integer getPageOfBooks(int num);
    Integer getPageOfBooks(int num,BookClassify bookClassify);

    //按书籍id获取这本书
    Book getBookById(int bookId);

    //模糊搜索(按书名)
    List<Book> getBooksByBookName(String bookName);

    //模糊搜索(按作者)
    List<Book> getBooksByAuthor(String author);

    //模糊搜索(按出版社)
    List<Book> getBooksByPublishName(String publishName);

    /*
    * 修改相关接口
    * */
    //修改书籍信息
    void updateBook(Book book);

    /*
    * 新增相关接口
    * */
    //添加一本新书
    void addNewBook(Book book);

    /*
    * 删除相关接口(逻辑删除)
    * */
    //传入书籍对象删除这本书
    void deleteOneBook(Book book);

    //根据书籍ID列表获取书籍
    List<Book> getBooksByBookIDSet(Set<String> reserveList);
    List<Book> getBooksByBookIDList(List<String> bookIDList);
}
